﻿procedure;
var
  DS, DSAccType: TAppDataSet;
  SL: TStringList;
  idPer: string;
  typePpvAcc: boolean;
  
  MaSu_SL: TStringList;
  MaSu_i: integer;
  
  KK_SL : TStringList;
  KK_DS : TAppDataSet;
  KK_ID : string;
  
  MP_IDGlobKonf: String;
  
  dingo_sl : TStringList;
  dingo_ds : TAppDataSet;
  
var
  AV1_DSPrices, AV1_DSFuels: TAppDataSet;
  AV1_SLCars, AV1_SLFuels: TStringList;
  AV1_id_car, AV1_id_fuel, AV1_filter: String;
  AV1_price_from, AV1_price_to, AV1_fuel_from, AV1_fuel_to: DateTime;
  AV1_fuel_price: Float;
  
// vložené procedury - begin

  //PŠtu 27.11.2025
  procedure pStu_CasoveRozliseniZamenaVazby;
  var
    SL, SLData, SLFrom: TStringList;
    idA, idB, priznak, IDDokladu: string;
    iStu: integer;
  begin
    SL    := TStringList.Create;
    SLData:= TStringList.Create;
    SLFrom:= TStringList.Create;
    try
      //A// doplnění příznaku 42658778,10
      iStu:= 0;
      StringToSL(AppServer.GetDBKeyValues(SourceName, rmPrimary, '28504094,10', ''), ';', SLFrom);
      While iStu<SLFrom.Count do begin
        Priznak:= '';
        AppServer.ReadDBRecord(SourceName, rmPrimary, '28504094,10', SLFrom.Strings[iStu], False, SLData);
        idA:= SLData.Values['ic_a']+','+SLData.Values['u_a'];
        idB:= SLData.Values['ic_b']+','+SLData.Values['u_b'];
        IDDokladu:= AppServer.GetDBKeyValue(SourceName, rmPrimary, '80961,10', idA, ftIDB, ftIDA);
        If IDDokladu>',' then begin
          If AppServer.ExistDBKeyValue(SourceName, rmPrimary, '268182,10', IDDokladu)
          then Priznak:= '1' else Priznak:= '0';
        end;
        AppServer.SetDBAtrValue(SourceName, MainLang, '28480766,10', '42658778,10', idB, Priznak);
        iStu:= iStu + 1;
      end;
      
      //B// přehození dat ze třídy do třídy '28504095,10' => '42659333,10'
      iStu:= 0;
      StringToSL(AppServer.GetDBKeyValues(SourceName, rmPrimary, '28504095,10', ''), ';', SLFrom);
      While iStu<SLFrom.Count do begin
        AppServer.ReadDBRecord(SourceName, rmPrimary, '28504095,10', SLFrom.Strings[iStu], False, SLData);
        idA:= SLData.Values['ic_a']+','+SLData.Values['u_a']; //položky čerpajícího 1
        idB:= SLData.Values['ic_b']+','+SLData.Values['u_b']; //položka rozlišení   N
        If AppServer.GetDBKeyValue(SourceName, rmPrimary, '42659333,10', idA, ftIDA, ftID)='' then begin
          SL.Clear;
          SL.Add('ic_a='+LByID(idA)); //N
          SL.Add('u_a=' +RByID(idA));
          SL.Add('ic_b='+LByID(idB)); //1
          SL.Add('u_b=' +RByID(idB));
          AppServer.InsertDBRecord(SourceName, MainLang, '42659333,10', false, SL);
          AppServer.DeleteDBRecord(SourceName, '28504095,10', SLFrom.Strings[iStu], False);
        end else
          ;//nepřevoditelné zůstanou v původní třídě
        iStu:= iStu + 1;
      end;
    finally
      SL.Free;
      SLData.Free;
      SLFrom.Free
    end;
  end;
  
begin
  AppServer.SetSQLScript(SourceName,TargetPath + 'Reinstall_1170BI.sql');
  AppServer.SetDSTransferData(SourceName,'6269,5',nttNonLicAndNonNLP,lttAll,[mtaInsert,mtaUpdate,mtaDelete],[mtaInsert]);
  AppServer.SetDSTransferData(SourceName,'6269,5',nttNonLicAndNLP,lttNonLangOrNonNLP,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'6269,5',nttLicAndNonNLP,lttLangOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'6269,5',nttLicAndNLP,lttNonNLPOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'6269,5',nttNLPOnly,lttNLPOnly,[mtaIUpdate],[]);
  AppServer.SetDSTransferData(SourceName,'9999,9999',nttNonLicAndNonNLP,lttAll,[mtaInsert,mtaUpdate,mtaDelete],[mtaInsert]);
  AppServer.SetDSTransferData(SourceName,'9999,9999',nttNonLicAndNLP,lttNonLangOrNonNLP,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'9999,9999',nttLicAndNonNLP,lttLangOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'9999,9999',nttLicAndNLP,lttNonNLPOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'9999,9999',nttNLPOnly,lttNLPOnly,[mtaIUpdate],[]);
  AppServer.SetDSTransferData(SourceName,'165587,10',nttNonLicAndNonNLP,lttAll,[mtaInsert,mtaUpdate,mtaDelete],[mtaInsert]);
  AppServer.SetDSTransferData(SourceName,'165587,10',nttNonLicAndNLP,lttNonLangOrNonNLP,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'165587,10',nttLicAndNonNLP,lttLangOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'165587,10',nttLicAndNLP,lttNonNLPOnly,[mtaInsert,mtaUpdate,mtaDelete],[]);
  AppServer.SetDSTransferData(SourceName,'165587,10',nttNLPOnly,lttNLPOnly,[mtaIUpdate],[]);
  M17059359_10;  // NEMAZAT, STANDARDNI SOUCAST REINSTALACE
  AppServer.SetSQLScript(SourceName,TargetPath + 'Reinstall_1170AD.sql'); 
  
  // ZS nastaveni nove hodnoty zivotniho minima jednortlivce od 5.2026 (NESPOUSTET)
  if (Legislation = '745998,10') then
  begin
    idPer := AppServer.GetDBKeyValues(SourceName, rmPrimary, '450391,10', '("546181,10" >= ''2026-05-01'') AND ("451082,10" = 0)');
    if (idPer <> '') then
      if (AppServer.GetDBAtrValue(SourceName, rmPrimary, '', '450391,10', '2497496,10', idPer) <> '5500') then
        // konfigurace mezd - Zivotni minimum jednotlivce
        AppServer.SetDBAtrValue(SourceName, UserLang, '450391,10', '2497496,10', idPer, '5500');
  end;
  // ZS konec
  
  // MaSu - Reinstalace do atributu "Stav souboru" (42648125,10) (NESPOUSTET)
  MaSu_SL := TStringList.Create;
  try
    StringToSL(AppServer.GetDBKeyValues(SourceName,rmPrimary,'40750937,10',Format('("40750961,10" is not null) and ("42648125,10" is null)',[])),';',MaSu_SL);
    while MaSu_i < MaSu_SL.Count do
    begin
      AppServer.SetDBAtrValue(SourceName,'','40750937,10','42648125,10',MaSu_SL.Strings[MaSu_i],'1');
      MaSu_i := MaSu_i + 1;
    end;
  finally
    MaSu_SL.Free;
  end;
  // MaSu - END
  
  // KK - Shození záznamů do třídy Procesy workflow (NESPOUSTET)
  KK_SL := TStringList.Create;
  KK_DS := TAppDataSet.Create;
  try
    KK_DS.SetDSParams(SourceName, rmPrimary, '42653067,10', dsaReadNonVisible, '', '', '', '', '');
    KK_DS.Open;
    KK_DS.Filter := '("42653070,10.ic_b" = 10582733) and ("42653070,10.u_b" = 10) and ("42653069,10.ic" is null)';
    while not KK_DS.EOF do begin
      KK_ID := KK_DS.GetPKValue;
      KK_SL.Clear;
      KK_SL.Add('ic='+LByID(KK_ID));
      KK_SL.Add('u='+RByID(KK_ID));
      AppServer.InsertDBRecord(SourceName,UserLang,'42640155,10',true,KK_SL);  
      KK_DS.Next;
    end;
  finally
    KK_DS.Free;
    KK_SL.Free;
  end;
  // KK - END
  
  // AV1 - Změna uložení průměrné spotřeby evidovaného vožidla
  // NESPOUŠTĚT
  AV1_DSPrices := TAppDataSet.Create;
  AV1_DSFuels := TAppDataSet.Create;
  //
  AV1_SLCars := TStringList.Create;
  AV1_SLFuels := TStringList.Create;
  try
    AV1_DSPrices.SetDSParams(SourceName, rmPrimary, '5153939,10016', dsaFullNonVisible, '19068,10212', '0,0', 'ID_A=ID');
    AV1_DSPrices.OpenEmpty;
    //
    AV1_DSFuels.SetDSParams(SourceName, rmPrimary, '5153946,10016', dsaEditNonVisible);
    AV1_DSFuels.NoMacros := true;
    AV1_DSFuels.OpenEmpty;
    //
    StringToSL(AppServer.GetDBKeyValues(SourceName, rmPrimary, '19068,10212', ''), ';', AV1_SLCars);
    while AV1_SLCars.Count <> 0 do
    begin
      AV1_id_car := AV1_SLCars.Strings[0];
      AV1_SLCars.Delete(0);
      //
      AV1_DSPrices.MasterIDParent := AV1_id_car;
      while not AV1_DSPrices.EOF do
      begin
        AV1_price_from := AV1_DSPrices.FieldByName('5153943,10016').AsDateTime;
        AV1_price_to := AV1_DSPrices.FieldByName('5153944,10016').AsDateTime;
        AV1_fuel_price := AV1_DSPrices.FieldByName('5153945,10016').AsFloat;
        //
        AV1_filter := Format('"ic_a" = %% AND "u_a" = %%', [LByID(AV1_id_car), RByID(AV1_id_car)]);
        if AV1_price_from <> 0.0 then
          AV1_filter := Format('%% AND ("5153951,10016" >= ''%%'' OR "5153951,10016" is NULL)', [AV1_filter, DateToANSIStr(AV1_price_from)]);
        if AV1_price_to <> 0.0 then
          AV1_filter := Format('%% AND ("5153950,10016" <= ''%%'' OR "5153950,10016" is NULL)', [AV1_filter, DateToANSIStr(AV1_price_to)]);
        AV1_DSFuels.Filter := AV1_filter;
        //
        while not AV1_DSFuels.EOF do
        begin
          AV1_fuel_from := AV1_DSFuels.FieldByName('5153950,10016').AsDateTime;
          AV1_fuel_to := AV1_DSFuels.FieldByName('5153951,10016').AsDateTime;
          AV1_id_fuel := AV1_DSFuels.GetKeyValue('', ftIDB);
          //
          if AV1_price_from <= AV1_fuel_from then
          begin
            if (AV1_price_to = 0.0) or ((AV1_fuel_to <> 0.0) and (AV1_price_to >= AV1_fuel_to)) then
            begin
              AV1_DSFuels.Edit;
              AV1_DSFuels.FieldByName('6655880,10016').AsFloat := AV1_fuel_price;
              AV1_DSFuels.PostNoConfirm;
            end else
            begin
              AV1_DSFuels.Edit;
              AV1_DSFuels.FieldByName('6655880,10016').AsFloat := AV1_fuel_price;
              AV1_DSFuels.FieldByName('5153951,10016').AsDateTime := AV1_price_to;
              AV1_DSFuels.PostNoConfirm;
              //
              AV1_SLFuels.Clear;
              AV1_SLFuels.Values['ic_a'] := LByID(AV1_id_car);
              AV1_SLFuels.Values['u_a'] := RByID(AV1_id_car);
              AV1_SLFuels.Values['ic_b'] := LByID(AV1_id_fuel);
              AV1_SLFuels.Values['u_b'] := RByID(AV1_id_fuel);
              AV1_SLFuels.Values['5153925,10016'] := DateToANSIStr(DateAdd(dpDay, 1, AV1_price_to));
              AV1_SLFuels.Values['5153927,10016'] := DateToANSIStr(AV1_fuel_to);
              AppServer.InsertDBRecord(SourceName, '', '5153947,10016', false, AV1_SLFuels);
            end;
          end else
          begin
            if (AV1_price_to = 0.0) or ((AV1_fuel_to <> 0.0) and (AV1_price_to >= AV1_fuel_to)) then
            begin
              AV1_DSFuels.Edit;
              AV1_DSFuels.FieldByName('6655880,10016').AsFloat := AV1_fuel_price;
              AV1_DSFuels.FieldByName('5153950,10016').AsDateTime := AV1_price_from;
              AV1_DSFuels.PostNoConfirm;
              //
              AV1_SLFuels.Clear;
              AV1_SLFuels.Values['ic_a'] := LByID(AV1_id_car);
              AV1_SLFuels.Values['u_a'] := RByID(AV1_id_car);
              AV1_SLFuels.Values['ic_b'] := LByID(AV1_id_fuel);
              AV1_SLFuels.Values['u_b'] := RByID(AV1_id_fuel);
              AV1_SLFuels.Values['5153925,10016'] := DateToANSIStr(AV1_fuel_from);
              AV1_SLFuels.Values['5153925,10016'] := DateToANSIStr(DateAdd(dpDay, -1, AV1_price_from));
              AppServer.InsertDBRecord(SourceName, '', '5153947,10016', false, AV1_SLFuels);
            end else
            begin
              AV1_DSFuels.Edit;
              AV1_DSFuels.FieldByName('6655880,10016').AsFloat := AV1_fuel_price;
              AV1_DSFuels.FieldByName('5153950,10016').AsDateTime := AV1_price_from;
              AV1_DSFuels.FieldByName('5153951,10016').AsDateTime := AV1_price_to;
              AV1_DSFuels.PostNoConfirm;
              //
              AV1_SLFuels.Clear;
              AV1_SLFuels.Values['ic_a'] := LByID(AV1_id_car);
              AV1_SLFuels.Values['u_a'] := RByID(AV1_id_car);
              AV1_SLFuels.Values['ic_b'] := LByID(AV1_id_fuel);
              AV1_SLFuels.Values['u_b'] := RByID(AV1_id_fuel);
              AV1_SLFuels.Values['5153925,10016'] := DateToANSIStr(AV1_fuel_from);
              AV1_SLFuels.Values['5153925,10016'] := DateToANSIStr(DateAdd(dpDay, -1, AV1_price_from));
              AppServer.InsertDBRecord(SourceName, '', '5153947,10016', false, AV1_SLFuels);
              //
              AV1_SLFuels.Clear;
              AV1_SLFuels.Values['ic_a'] := LByID(AV1_id_car);
              AV1_SLFuels.Values['u_a'] := RByID(AV1_id_car);
              AV1_SLFuels.Values['ic_b'] := LByID(AV1_id_fuel);
              AV1_SLFuels.Values['u_b'] := RByID(AV1_id_fuel);
              AV1_SLFuels.Values['5153925,10016'] := DateToANSIStr(DateAdd(dpDay, 1, AV1_price_to));
              AV1_SLFuels.Values['5153927,10016'] := DateToANSIStr(AV1_fuel_to);
              AppServer.InsertDBRecord(SourceName, '', '5153947,10016', false, AV1_SLFuels);
            end;
          end;
          //
          AV1_DSFuels.Next;
        end;
        //
        AV1_DSPrices.Delete;
      end;
    end;
  finally
    AV1_DSPrices.Free;
    AV1_DSFuels.Free;
    //
    AV1_SLCars.Free;
    AV1_SLFuels.Free;
  end;
  // AV1 - END
  
  //PŠtu - BEGIN       (NESPOUSTET)
  PStu_CasoveRozliseniZamenaVazby;
  //PŠtu - END

  // MP "Příplatek za svátek = Pro celou směnu" - výchozí nastavení povinného údaje v konfiguraci doch.                 - NESPOUŠTĚT 
  MP_IDGlobKonf := AppServer.GetDBKeyValues(SourceName, rmPrimary, '15777,10', ''); // ID "Globální konfigurace II" 
  if MP_IDGlobKonf <> '' then
  begin
    AppServer.SetDBAtrValue(SourceName, '', '15777,10', '42684955,10', MP_IDGlobKonf, '0'); // "Příplatek za svátek = Pro celou směnu"  (současný stav)
  end; 
  // MP - END
  
  // ZS nastaveni predkontace MS 765 (NESPOUSTET)
  // ZS konec
  if (Legislation = '745998,10') then
  begin
    DSAccType := TAppDataSet.Create;
    SL := TStringList.Create;
    try
      // DS Zpusoby zauctovani-Mzdy
      DSAccType.SetDSParams(SourceName, rmPrimary, '726298,10', dsaViewNonVisible);
      DSAccType.NoMacros := true;
            
      idPer := AppServer.GetDBKeyValues(SourceName, rmPrimary, '450391,10', '"451082,10" = 0');  // posledni obdobi
      if (idPer <> '') then
      begin
        if (AppServer.GetDBAtrValue(SourceName, rmPrimary, UserLang, '450391,10', '13950805,10', idPer) = '1') then
        begin
          // tvorba predkontaci pro druhy PPV
          typePpvAcc := true;
          DSAccType.Filter := '"16625057,10" IS NOT NULL';
          DSAccType.Open;
        end else
          DSAccType.OpenEmpty;  // DS neni potreba, predkontace pro druhy PPV se neprednastavuji
              
        // tvorba predkontaci
        M1916105_10(DSAccType, SL, '807355,10', '2457368,9', 3, typePpvAcc);
      end;
    finally
      DSAccType.Free;
      SL.Free;
    end;
  end;
  // ZS nastaveni konfiguracnich parametru mezd pro rok 2026 (NESPOUSTET)
  if (Legislation = '745998,10') then
  begin
    idPer := AppServer.GetDBKeyValues(SourceName, rmPrimary, '450391,10', '("546181,10" >= ''2026-01-01'') AND ("451082,10" = 0)');
    if (idPer <> '') then
    begin
      // KONFIGURACNI HODNOTY
      // Snizeni VZ ZP
      if (AppServer.GetDBAtrValue(SourceName, rmPrimary, '', '450391,10', '467927,10', idPer) <> '0') then
        AppServer.SetDBAtrValue(SourceName, '', '450391,10', '467927,10', idPer, '16206');
      // Minimalni mzda
      AppServer.SetDBAtrValue(SourceName, '', '450391,10', '1337323,10', idPer, '22400');
      // Minimalni hodinovy tarif
      AppServer.SetDBAtrValue(SourceName, '', '450391,10', '467917,10', idPer, '134.4');
      // Zarucena mzda
      AppServer.SetDBAtrValue(SourceName, '', '22426511,10', '22426519,10', '2153021,9', '22400');
      AppServer.SetDBAtrValue(SourceName, '', '22426511,10', '22426519,10', '2153022,9', '26880');
      AppServer.SetDBAtrValue(SourceName, '', '22426511,10', '22426519,10', '2153023,9', '31360');
      AppServer.SetDBAtrValue(SourceName, '', '22426511,10', '22426519,10', '2153024,9', '35840');
      // Zaruceny tarif
      AppServer.SetDBAtrValue(SourceName, '', '22426511,10', '22426552,10', '2153021,9', '134.4');
      AppServer.SetDBAtrValue(SourceName, '', '22426511,10', '22426552,10', '2153022,9', '161.3');
      AppServer.SetDBAtrValue(SourceName, '', '22426511,10', '22426552,10', '2153023,9', '188.2');
      AppServer.SetDBAtrValue(SourceName, '', '22426511,10', '22426552,10', '2153024,9', '215.1');
      // Minimalni vymerovaci zaklad
      AppServer.SetDBAtrValue(SourceName, '', '450391,10', '587230,10', idPer, '22400');
      // Hranice pro narok na danovy bonus
      AppServer.SetDBAtrValue(SourceName, '', '450391,10', '54561,10098', idPer, '11200');
      // % socialni pojisteni (rizika)
      AppServer.SetDBAtrValue(SourceName, '', '450391,10', '41483614,10', idPer, '27.8');
      // % socialni pojisteni (zachranar)
      AppServer.SetDBAtrValue(SourceName, '', '450391,10', '39330171,10', idPer, '29.8');
      // Maximalni vymerovaci zaklad SP
      AppServer.SetDBAtrValue(SourceName, MainLang, '450391,10', '613554,10', idPer, '2350416');
      // 1.redukcni hranice
      AppServer.SetDBAtrValue(SourceName, MainLang, '450391,10', '6095109,10', idPer, '1633');
      // 2.redukcni hranice
      AppServer.SetDBAtrValue(SourceName, MainLang, '450391,10', '6095111,10', idPer, '2449');
      // 3.redukcni hranice
      AppServer.SetDBAtrValue(SourceName, MainLang, '450391,10', '6095113,10', idPer, '4897');
      // Prumerna mzda pro ucely duchodoveho pojisteni
      AppServer.SetDBAtrValue(SourceName, MainLang, '450391,10', '39000004,10', idPer, '48967');
      // Hranice hodinove sazby
      AppServer.SetDBAtrValue(SourceName, MainLang, '450391,10', '39000008,10', idPer, '564');
      // Limit pro srazkovou dan DPP
      AppServer.SetDBAtrValue(SourceName, MainLang, '450391,10', '530851,10', idPer, '12000');
      // Limit pro odvod SP (DPP)
      AppServer.SetDBAtrValue(SourceName, MainLang, '448490,10', '984531,10', '448541,10', '12000');
      // Limit pro odvod ZP (DPP)
      AppServer.SetDBAtrValue(SourceName, MainLang, '448490,10', '6101373,10', '448541,10', '12000');
      // MS 776 - konstanta
      AppServer.SetDBAtrValue(SourceName, MainLang, '18144,10', '601380,10', '2410547,9', '4.7');
      // Prumerna mzda v predchozim roce
      AppServer.SetDBAtrValue(SourceName, MainLang, '450391,10', '29722984,10', idPer, '48171');
      
      // limity danove tabulky
      DS := TAppDataSet.Create;
      try
        // DS Danova tabulka zalohove dane
        // 1. sazba 15%
        DS.SetDSParams(SourceName, rmPrimary, '484444,10', dsaFullNonVisible, '', '', '',
                       Format('("ic_b" = %%) AND ("u_b" = %%) AND ("484470,10" = 15)', [LByID(idPer), RByID(idPer)]));
        DS.NoMacros := true;
        DS.Open;
        if not DS.IsEmpty then
        begin
          DS.Edit;
          DS.FieldByName('484466,10').AsFloat := 146901;
          DS.PostNoConfirm;
        end;
          
        // 2. sazba 23%
        DS.Filter := Format('("ic_b" = %%) AND ("u_b" = %%) AND ("484470,10" = 23)', [LByID(idPer), RByID(idPer)]);
        if not DS.IsEmpty then
        begin
          DS.Edit;
          DS.FieldByName('484467,10').AsFloat := 146901;
          DS.PostNoConfirm;
        end;
      finally
        DS.Free;
      end;
    end;
  end;
  // ZS konec
  
  // Dingo - start (nespouštět)
  dingo_sl := TStringList.Create;
  dingo_ds := TAppDataSet.Create;
  try
    dingo_ds.SetDSParams(SourceName, rmPrimary, '251591,10212', dsaReadNonVisible);
    dingo_ds.Filter := Format('(("565317,10212.ic" is not null and "565317,10212.u" is not null and "1160168,10212.ic" is null and "1160168,10212.u" is null) or ' +
      '("565318,10212.ic" is not null and "565318,10212.u" is not null and "1160170,10212.ic" is null and "1160170,10212.u" is null)) and ' +
      '("268301,10212" >= ''%%'' or "588852,10212.569731,10" = 0)', [DateTimeToANSIStr(SysDate)]);
    dingo_ds.Open;
    
    // doplneni vazeb
    while not dingo_ds.EOF do
      begin
        // cilovy sklad
        if not dingo_ds.FieldByName('565317,10212.ic').IsNull and dingo_ds.FieldByName('1160168,10212.ic').IsNull then
          begin
            dingo_sl.Clear;
            dingo_sl.Values['ic_a'] := dingo_ds.FieldByName('251592,10212.ic').AsString;
            dingo_sl.Values['u_a'] := dingo_ds.FieldByName('251592,10212.u').AsString;
            dingo_sl.Values['ic_b'] := dingo_ds.FieldByName('565317,10212.ic_b').AsString;
            dingo_sl.Values['u_b'] := dingo_ds.FieldByName('565317,10212.u_b').AsString;
            AppServer.InsertDBRecord(SourceName, '', '42673599,10', False, dingo_sl);
          end;
        
        // cilova skladova pozice
        if not dingo_ds.FieldByName('565318,10212.ic').IsNull and dingo_ds.FieldByName('1160170,10212.ic').IsNull then
          begin
            dingo_sl.Clear;
            dingo_sl.Values['ic_a'] := dingo_ds.FieldByName('251592,10212.ic').AsString;
            dingo_sl.Values['u_a'] := dingo_ds.FieldByName('251592,10212.u').AsString;
            dingo_sl.Values['ic_b'] := dingo_ds.FieldByName('565318,10212.ic_b').AsString;
            dingo_sl.Values['u_b'] := dingo_ds.FieldByName('565318,10212.u_b').AsString;
            AppServer.InsertDBRecord(SourceName, '', '37938149,10', False, dingo_sl);
          end;
        
        //
        dingo_ds.Next;
      end;
    
  finally
    dingo_ds.Free;
    dingo_sl.Free;
  end;

  // Dingo - stop
  
  
  
  
end.